package dp;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 创建时间：2024/6/26 上午10:18
 */
public class 汉诺塔问题 {
    // 将第一个中的圆盘移动到 第三个
    public void hanota(List<Integer> A, List<Integer> B, List<Integer> C) {
        move(A.size(), A, B, C);
    }

    void move(int n, List<Integer> A, List<Integer> B, List<Integer> C) {
        if (n == 1) {
            C.add(A.remove(A.size() - 1));
            return;
        }
        move(n - 1, A, C, B);
        C.add(A.remove(A.size() - 1));
        move(n - 1, B, A, C);
    }

    public static void main(String[] args) {
        汉诺塔问题 h = new 汉诺塔问题();
        List<Integer> a = new ArrayList<>(Arrays.asList(4,3,2, 1, 0));
        h.hanota(a, new ArrayList<>(), new ArrayList<>());
    }
}
